pict 0.1.2

Half-baked PICT resource rendering in rust
Documentation
# PICT Drawing Opcodes Version 1

| Opcode | Name            | Description                                    | Size (in bytes) of additional data       |
| ------ | --------------- | ---------------------------------------------- | ---------------------------------------- |
| $00    | NOP             | No operation                                   | 0                                        |
| $01    | ClipRgn         | Clipping region                                | Region size                              |
| $02    | BkPat           | Background pattern                             | 8                                        |
| $03    | TxFont          | Font number for text (Integer)                 | 2                                        |
| $04    | TxFace          | Text’s font style (0..255)                     | 1                                        |
| $05    | TxMode          | Source mode (Integer)                          | 2                                        |
| $06    | SpExtra         | Extra space (Fixed)                            | 4                                        |
| $07    | PnSize          | Pen size (Point)                               | 4                                        |
| $08    | PnMode          | Pen mode (Integer)                             | 2                                        |
| $09    | PnPat           | Pen pattern                                    | 8                                        |
| $0A    | FillPat         | Fill pattern                                   | 8                                        |
| $0B    | OvSize          | Oval size (Point)                              | 4                                        |
| $0C    | Origin          | dh (Integer), dv (Integer)                     | 4                                        |
| $0D    | TxSize          | Text size (Integer)                            | 2                                        |
| $0E    | FgColor         | Foreground color (Long)                        | 4                                        |
| $0F    | BkColor         | Background color (Long)                        | 4                                        |
| $10    | TxRatio         | Numerator (Point), denominator (Point)         | 8                                        |
| $11    | picVersion      | Version (0..255)                               | 1                                        |
| $20    | Line            | pnLoc (Point), newPt (Point)                   | 8                                        |
| $21    | LineFrom        | newPt (Point)                                  | 4                                        |
| $22    | ShortLine       | pnLoc (Point), dh (–128..127), dv (–128..127)  | 6                                        |
| $23    | ShortLineFrom   | dh (–128..127), dv (–128..127)                 | 2                                        |
| $28    | LongText        | txLoc (Point), count (0..255), text            | 5 + text                                 |
| $29    | DHText          | dh (0..255), count (0..255), text              | 2 + text                                 |
| $2A    | DVText          | dv (0..255), count (0..255), text              | 2 + text                                 |
| $2B    | DHDVText        | dh (0..255), dv (0..255), count (0..255), text | 3 + text                                 |
| $30    | frameRect       | Rectangle (Rect)                               | 8                                        |
| $31    | paintRect       | Rectangle (Rect)                               | 8                                        |
| $32    | eraseRect       | Rectangle (Rect)                               | 8                                        |
| $33    | invertRect      | Rectangle (Rect)                               | 8                                        |
| $34    | fillRect        | Rectangle (Rect)                               | 8                                        |
| $38    | frameSameRect   | Rectangle (Rect)                               | 0                                        |
| $39    | paintSameRect   | Rectangle (Rect)                               | 0                                        |
| $3A    | eraseSameRect   | Rectangle (Rect)                               | 0                                        |
| $3B    | invertSameRect  | Rectangle (Rect)                               | 0                                        |
| $3C    | fillSameRect    | Rectangle (Rect)                               | 0                                        |
| $40    | frameRRect      | Rectangle (Rect)\*                             | 8                                        |
| $41    | paintRRect      | Rectangle (Rect)\*                             | 8                                        |
| $42    | eraseRRect      | Rectangle (Rect)\*                             | 8                                        |
| $43    | invertRRect     | Rectangle (Rect)\*                             | 8                                        |
| $44    | fillRRect       | Rectangle (Rect)\*                             | 8                                        |
| $48    | frameSameRRect  | Rectangle (Rect)                               | 0                                        |
| $49    | paintSameRRect  | Rectangle (Rect)                               | 0                                        |
| $4A    | eraseSameRRect  | Rectangle (Rect)                               | 0                                        |
| $4B    | invertSameRRect | Rectangle (Rect)                               | 0                                        |
| $4C    | fillSameRRect   | Rectangle (Rect)                               | 0                                        |
| $50    | frameOval       | Rectangle (Rect)                               | 8                                        |
| $51    | paintOval       | Rectangle (Rect)                               | 8                                        |
| $52    | eraseOval       | Rectangle (Rect)                               | 8                                        |
| $53    | invertOval      | Rectangle (Rect)                               | 8                                        |
| $54    | fillOval        | Rectangle (Rect)                               | 8                                        |
| $58    | frameSameOval   | Rectangle (Rect)                               | 0                                        |
| $59    | paintSameOval   | Rectangle (Rect)                               | 0                                        |
| $5A    | eraseSameOval   | Rectangle (Rect)                               | 0                                        |
| $5B    | invertSameOval  | Rectangle (Rect)                               | 0                                        |
| $5C    | fillSameOval    | Rectangle (Rect)                               | 0                                        |
| $60    | frameArc        | Rectangle (Rect), startAngle, arcAngle         | 12                                       |
| $61    | paintArc        | Rectangle (Rect), startAngle, arcAngle         | 12                                       |
| $62    | eraseArc        | Rectangle (Rect), startAngle, arcAngle         | 12                                       |
| $63    | invertArc       | Rectangle (Rect), startAngle, arcAngle         | 12                                       |
| $64    | fillArc         | Rectangle (Rect), startAngle, arcAngle         | 12                                       |
| $68    | frameSameArc    | Rectangle (Rect)                               | 4                                        |
| $69    | paintSameArc    | Rectangle (Rect)                               | 4                                        |
| $6A    | eraseSameArc    | Rectangle (Rect)                               | 4                                        |
| $6B    | invertSameArc   | Rectangle (Rect)                               | 4                                        |
| $6C    | fillSameArc     | Rectangle (Rect)                               | 4                                        |
| $70    | framePoly       | Polygon (Poly)                                 | Polygon size                             |
| $71    | paintPoly       | Polygon (Poly)                                 | Polygon size                             |
| $72    | erasePoly       | Polygon (Poly)                                 | Polygon size                             |
| $73    | invertPoly      | Polygon (Poly)                                 | Polygon size                             |
| $74    | fillPoly        | Polygon (Poly)                                 | Polygon size                             |
| $78    | frameSamePoly   | (Not yet implemented)                          | 0                                        |
| $79    | paintSamePoly   | (Not yet implemented)                          | 0                                        |
| $7A    | eraseSamePoly   | (Not yet implemented)                          | 0                                        |
| $7B    | invertSamePoly  | (Not yet implemented)                          | 0                                        |
| $7C    | fillSamePoly    | (Not yet implemented)                          | 0                                        |
| $80    | frameRgn        | Region (Rgn)                                   | Region size                              |
| $81    | paintRgn        | Region (Rgn)                                   | Region size                              |
| $82    | eraseRgn        | Region (Rgn)                                   | Region size                              |
| $83    | invertRgn       | Region (Rgn)                                   | Region size                              |
| $84    | fillRgn         | Region (Rgn)                                   | Region size                              |
| $88    | frameSameRgn    | (Not yet implemented)                          | 0                                        |
| $89    | paintSameRgn    | (Not yet implemented)                          | 0                                        |
| $8A    | eraseSameRgn    | (Not yet implemented)                          | 0                                        |
| $8B    | invertSameRgn   | (Not yet implemented)                          | 0                                        |
| $8C    | fillSameRgn     | (Not yet implemented)                          | 0                                        |
| $90    | BitsRect        | CopyBits with clipped rectangle                | Variable†‡; see Listing A-2 on page A-17 |
| $91    | BitsRgn         | CopyBits with clipped region                   | Variable†‡; see Listing A-3 on page A-18 |
| $98    | PackBitsRect    | Packed CopyBits with clipped rectangle         | Variable†; see Listing A-2 on page A-17  |
| $99    | PackBitsRgn     | Packed CopyBits with clipped rectangle         | Variable†; see Listing A-3 on page A-18  |
| $A0    | ShortComment    | Kind (Integer)                                 | 2                                        |
| $A1    | LongComment     | Kind (Integer), size (Integer), data           | 4 + data                                 |
| $FF    | EndOfPicture    | End of picture                                 | 0                                        |